#include"Log.hpp"
#include"Socket.hpp"
#include"TcpServer.hpp"
#include"Protocol.hpp"
#include"ServerCal.hpp"
// int main()
// {
//  Request rq ( 123 , 456 ,'+') ;
//  std::string s  ;
//  rq.Serialize(&s);
//  std::cout<<s<<std::endl;
//     s= Encode(s) ;

// std::string content ;
//   bool r = Decode( s, &content) ;

// std::cout<<"content :  "<<content<<std::endl;
// Request temp  ; 

// //反序列化
// temp.DeSerialize(content) ;
// std::cout<<temp.x<<temp.y<<temp.op<<std::endl;

// Response rp(1000, 0) ;
// std::string content ;
// rp.Serialize(&content) ;//序列化  
//  std::cout<<"content :  "<<content<<std::endl;
//   std::string package = Encode(content);
//     std::cout <<package;


//     content = "";
//     bool r = Decode(package, &content);
//     std::cout << content << std::endl;


    

//  return 0 ;
// }

void Usage (   const  std::string & proc )
{
 std::cout << "\nUsage: " << proc << " port\n" << std::endl; 
}

int main( int argc ,   char * argv[]) 
{

  Usage(argv[0]) ;
    ServerCal cal ; 
      //placeholders::_1  : 占位符
       TcpServer * tsvp  =  new TcpServer(8080, bind( &ServerCal::Calculator,&cal  ,std::placeholders::_1 )  ) ;
      tsvp->InitServer();
      tsvp->Start() ;
}